﻿#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member
namespace Vanara.PInvoke;

[PInvokeData("cfgmgr32.h")]
[Flags]
public enum CM_DEVCAP : uint
{
	CM_DEVCAP_LOCKSUPPORTED = 0x00000001,
	CM_DEVCAP_EJECTSUPPORTED = 0x00000002,
	CM_DEVCAP_REMOVABLE = 0x00000004,
	CM_DEVCAP_DOCKDEVICE = 0x00000008,
	CM_DEVCAP_UNIQUEID = 0x00000010,
	CM_DEVCAP_SILENTINSTALL = 0x00000020,
	CM_DEVCAP_RAWDEVICEOK = 0x00000040,
	CM_DEVCAP_SURPRISEREMOVALOK = 0x00000080,
	CM_DEVCAP_HARDWAREDISABLED = 0x00000100,
	CM_DEVCAP_NONDYNAMIC = 0x00000200,
	CM_DEVCAP_SECUREDEVICE = 0x00000400,
}

[PInvokeData("cfgmgr32.h")]
public enum CM_INSTALL_STATE : uint
{
	CM_INSTALL_STATE_INSTALLED = 0,
	CM_INSTALL_STATE_NEEDS_REINSTALL = 1,
	CM_INSTALL_STATE_FAILED_INSTALL = 2,
	CM_INSTALL_STATE_FINISH_INSTALL = 3,
}

[PInvokeData("cfgmgr32.h")]
public enum CM_REMOVAL_POLICY : uint
{
	CM_REMOVAL_POLICY_EXPECT_NO_REMOVAL = 1,
	CM_REMOVAL_POLICY_EXPECT_ORDERLY_REMOVAL = 2,
	CM_REMOVAL_POLICY_EXPECT_SURPRISE_REMOVAL = 3,
}